iT邦幫忙

2023 iThome 鐵人賽

DAY 4
1
AI & Data

用Python程式進行股票技術分析系列 第 4

Day4 從看盤軟體中取得資料

  • 分享至 

  • xImage
  •  

在進行課題討論之前,最後一個準備工作就是讀取看盤軟體匯出的資料。在Day2時有提到看盤軟體為嘉實系統券商版(我使用的是永豐金證券的「好神通PLUS」)或XQ全球贏家個人版。另外還需要安裝Excel軟體(我是安裝與使用Microsoft Office 2019)才能完成資料匯出的動作。

從看盤軟體匯出資料

開啟看盤軟體(在這裡是「好神通PLUS」),出現以下畫面:
Imgur
然後至左下角區域,選擇「技術分析」頁籤後;點選右上角的圖示:
Imgur
進入技術分析頁面:
Imgur
選擇想要看得主圖指標,或是新增副圖(在這邊以新增主圖指標「移動平均線五」做為範例):
Imgur
將所需的畫面設定好後選擇「輸出到Excel」,將該頁面的股價與指標數值匯出:
Imgur
執行後會開啟Excel程式,資料就在新增的活頁簿中;該活頁簿內只有一個工作表,且工作表名稱為股票名稱與代號。之後就請把活頁簿存檔(可以到此處下載範例檔案:https://github.com/yilintung/IronMan2023,接下來程式實作會用到的是Day4_Day5.xlsx)。

程式實作:用pandas套件讀取Excel檔案

有了股票資料的Excel檔案後,就可以開始寫程式去讀取它。這邊會藉由pandas套件來讀取,並存放到DataFrame資料結構中。程式碼如下:

# 載入從「好神通PLUS」輸出的Excel檔
df = pd.read_excel('Day4_Day5.xlsx')

之後進行一些處裡以便後續使用(如繪圖與資料分析)。首先是將這個DataFrame拆解,我把它拆解成「K線」(參見Day5說明)與「移動平均線」兩個DataFrame。其中「K線」的DataFrame存放著技術分析所需的主要元素:盤價、最價、最價、盤價與成交,而「移動平均線」的DataFrame則是存放各種移動平均線(日線、周線、雙周線、月線、季線、半年線與年線)。接下來的處理是把行(Column)的名稱由中文改為英文,如開盤價改為Open;最後是將索引改為日期。程式碼如下:

# 保存K線的基本資訊(開、高、低、收、量)
df_k_line = df.drop(columns=['SMA5','SMA10','SMA20','SMA60','SMA120','SMA240','MA5','MA10'])

# 保存價的移動平均線
df_sma = df.drop(columns=['開盤價','最高價','最低價','收盤價','成交量','MA5','MA10'])

# 將K線的Columns的名稱由中文改為英文
df_k_line = df_k_line.rename(columns={'時間':'Date','開盤價':'Open','最高價':'High','最低價':'Low','收盤價':'Close','成交量':'Volume'})

# 將價的移動平均線的Columns的名稱由中文改為英文
df_sma = df_sma.rename(columns={'時間':'Date'})

# 將K線的Date設為Index
df_k_line.set_index(df_k_line['Date'],inplace=True)
df_k_line = df_k_line.drop(columns=['Date'])

# 將價的移動平均線的Date設為Index
df_sma.set_index(df_sma['Date'],inplace=True)
df_sma = df_sma.drop(columns=['Date'])

我把完整的程式碼放在Jupyter Notebook中,本日的程式碼為「第四天:從看盤軟體中取得資料.ipynb」。
今天的程式碼於後續的課題之程式實作中都會使用到。另外從看盤軟體的技術分析頁面的資訊除了手繪的線段與圖案外都可以保存到Excel檔案中,因此像移動平均線(請參照Day7的說明)這樣的技術指標就可以很容易取得且無需另行額外的計算;並且像周K線或月K線等不同時間頻率的資料也可以直接取得而無需另外處理(在Day8會有用到周K線的程式實作案例)。


上一篇
Day3 用程式進行股票技術分析的課題
下一篇
Day5 K線、K線圖與K線型態
系列文
用Python程式進行股票技術分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言